CFLAGS = -Wall -Wextra -Werror -std=c11 -Iinclude  # -I 指定头文件路径
#CFLAGS = -Wall -Wextra -Werror -std=c11 -static -Iinclude  # 关键：-static 选项
LIB_DIR = lib
SRC_DIR = src

all: $(LIB_DIR)/libmystring.a $(SRC_DIR)/example

# 生成动态库（.so 或 .dylib）
#$(LIB_DIR)/libmystring.so: $(SRC_DIR)/mystring.o
#    $(CC) -shared -o $@ $^

# 编译静态库
$(LIB_DIR)/libmystring.a: $(SRC_DIR)/mystring.o
	ar rcs $@ $^

# 编译 .o 文件
$(SRC_DIR)/mystring.o: $(SRC_DIR)/mystring.c include/mystring.h
	$(CC) $(CFLAGS) -c $< -o $@

# 编译示例程序
$(SRC_DIR)/example: $(SRC_DIR)/example.c $(LIB_DIR)/libmystring.a
	$(CC) $(CFLAGS) $< -L$(LIB_DIR) -lmystring -o $@

clean:
	rm -f $(SRC_DIR)/*.o $(LIB_DIR)/*.a $(SRC_DIR)/example